package cn.iocoder.yudao.module.indicator.service.element;

import cn.iocoder.yudao.module.indicator.domain.dto.IndexCalculationDto;
import cn.iocoder.yudao.module.indicator.domain.vo.ElementCalculationVo;

import java.util.ArrayList;
import java.util.List;

/**
 * 元素处理总接口
 */
public interface ElementCalculationService {

    /**
     * 对于条件无法进入查询的方法，返回空集合，防止接收参数方空指针。
     */
    final List<ElementCalculationVo> DEFAULT_LIST = new ArrayList<ElementCalculationVo>();

    /**
     * 功能描述: 获取元素值
     * @Param:
     * @Return:
     * @Author: ZWC
     * @Date: 2024/9/26
     */
    default List<ElementCalculationVo> getElementById(IndexCalculationDto indexCalculationDto){
        return DEFAULT_LIST;
    }

    /**
     * 功能描述: 获取机构(科室/病区) 元素值明细
     * @Param:
     * @Return:
     * @Author: ZWC
     * @Date: 2024/9/26
     */
    default List<ElementCalculationVo> getElementGroupInstitute(IndexCalculationDto indexCalculationDto){
        return DEFAULT_LIST;
    }

    /**
     * 功能描述: 获取医生 元素值明细
     * @Param:
     * @Return:
     * @Author: ZWC
     * @Date: 2024/9/26
     */
    default List<ElementCalculationVo> getElementGroupDoctor(IndexCalculationDto indexCalculationDto){
        return DEFAULT_LIST;
    }

    /**
     * 功能描述: 获取诊间 元素值明细
     * @Param:
     * @Return:
     * @Author: ZWC
     * @Date: 2024/9/26
     */
    default List<ElementCalculationVo> getElementGroupRoom(IndexCalculationDto indexCalculationDto){
        return DEFAULT_LIST;
    }

    /**
     * 功能描述: 获取元素 趋势
     * @Param:
     * @Return:
     * @Author: ZWC
     * @Date: 2024/9/26
     */
    default List<ElementCalculationVo> getElementTrend(IndexCalculationDto indexCalculationDto){
        return DEFAULT_LIST;
    }

}
